home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: 500 MB Amiga Software / 500 MB Amiga Software - Euber 130 - Amiga Games Disc & Mag.iso / spiele / publicdomain / bierschen / bierschen.asc < prev    next >
Text File  |  1995-11-23  |  19KB  |  668 lines

  1. '--------------------------------------
  2. 'BIERSCHEN V1.0a 
  3. '
  4. 'Released ®25/08/93 by Volker Stepprath
  5. 'Copyright BIERSCHEN ©1993 by Testaware
  6. '--------------------------------------
  7. '
  8. Close Workbench 
  9. Request Off 
  10. Break Off 
  11. Amos Lock 
  12. '
  13. Dim XALIEN$(15),XEXPLOSION$(15),XHIGH(9),XHIGH$(9)
  14. '
  15. Global HA$,XHIGH(),XHIGH$(),XHIGHOK
  16. Global XALIENANZ,XEXPLOSION$,XALIEN$(),XEXPLOSION$()
  17. Global XSHIPS,XLEVEL,XPOINTS,XLASERANZ,XLOST,XTREFFER
  18. Global XTSHOOTS,XTHITS,XTLOST,XTTIME,XTTALENT#
  19. '
  20. Fix(2)
  21. '
  22. Unpack 16 To 0
  23. Screen Hide 0
  24. Hide On 
  25. '
  26. _INTRO
  27. _GETHERO
  28. '
  29. Do 
  30.    _MAIN
  31.    _GAME
  32. Loop 
  33. '
  34. Procedure _INTRO
  35.    If Exist(".bierschenhigh")
  36.       On Error Proc _FEHLER
  37.       Resume Label _BEERS
  38.       Open In 1,".bierschenhigh"
  39.          For I=0 To 9
  40.             Input #1,XHIGH$(I)
  41.             Input #1,XHIGH(I)
  42.          Next I
  43.       Close 1
  44.       Wait 50
  45.    Else 
  46.       _BEERS:
  47.       For I=0 To 9
  48.          Read XHIGH$(I)
  49.          XHIGH(I)=11000-(I*1000+1000)
  50.       Next I
  51.    End If 
  52.    Wait 100
  53.    '
  54.    If Length(3) Then Music 1
  55.    '
  56.    Unpack 14 To 2
  57.    Fade 2,,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF : Wait 30
  58.    Fade 2,,$600,$800,$A20,$A40,$C60,$C80,$EC0 : Wait 200
  59.    Fade 2,,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF : Wait 30
  60.    Fade 2 : Wait 60
  61.    '
  62.    Screen Open 2,320,256,4,Lowres
  63.    Cls 0 : Wait 10
  64.    _TC["PRESENTS",130,105,2,0] : Wait 150 : Flash Off : Fade 1 : Wait 15 : Cls 0
  65.    '
  66.    _TC["A GAME WRITTEN IN AMOS",72,105,2,0] : Wait 150 : Flash Off : Fade 1 : Wait 15 : Cls 0
  67.    '
  68.    Screen Copy 0,0,130,236,178 To 2,43,90
  69.    Fade 1,,$FFF,$F : Wait 250
  70.    Fade 1 : Wait 15 : Cls 0
  71.    '
  72.    _TC["TESTING",132,20,2,1] : _TC["KARSTEN BLANK",108,30,2,1]
  73.    _TC["SOUND",140,50,2,1] : _TC["THE DEZECRATOR",104,60,2,1] : _TC["VOLKER STEPPRATH",98,70,2,1]
  74.    _TC["GRAPHICS",128,90,2,1] : _TC["DAVID MCLACHLAN",100,100,2,1] : _TC["VOLKER STEPPRATH",98,110,2,1]
  75.    _TC["PROGRAMMING",116,130,2,1] : _TC["VOLKER STEPPRATH",98,140,2,1]
  76.    _TC["AMOS/ACMP",124,160,2,1] : _TC["FRANCOIS LIONET",102,170,2,1] : _TC["EUROPRESS SOFTWARE",90,180,2,1]
  77.    _TC["BIERSCHEN ©1993 BY TESTAWARE",48,220,2,0]
  78.    _WAIT
  79.    '
  80.    _TC["WIR SCHREIBEN DAS JAHR 2294.",20,30,2,1]
  81.    _TC["DAS BIER IST AEUSSERST KNAPP!",20,40,2,1]
  82.    _TC["DU BIST EINER DER LETZTEN HOPFEN",20,50,2,1]
  83.    _TC["UND MALZ ANBAUER DER GALAXIS!",20,60,2,1]
  84.    _TC["KURZ VOR DER REICHEN ERNTE WOLLEN",20,80,2,1]
  85.    _TC["ALKOHOLABHAENGIGE ALIENS DEINE",20,90,2,1]
  86.    _TC["WERTVOLLEN PLANTAGEN AUSPLUENDERN.",20,100,2,1]
  87.    _TC["DIR BLEIBT KEINE WAHL...",20,120,2,1]
  88.    _TC["...DENN ES GEHT UM LECKERES BIER!",20,130,2,1]
  89.    _TC["PROST",200,160,2,1]
  90.    _TC["(MAN... DIE STORY GEHT INS BLUT)",20,190,2,0]
  91.    _WAIT
  92.    '
  93.    Data "GUINESS","KILKKENNY","CORONA","SOL","HANSAEXPORT"
  94.    Data "FRUEHKOELSCH","PAULANA","ERDINGER","FAXE","ELEPHANT"
  95. End Proc
  96. Procedure _MAIN
  97.    Screen Open 2,320,256,4,Lowres : Cls 0
  98.    XTSHOOTS=0
  99.    XTHITS=0
  100.    XTLOST=0
  101.    XTTIME=0
  102.    XTTALENT#=0
  103.    '
  104.    XSHIPS=9
  105.    XLEVEL=0
  106.    XPOINTS=0
  107.    '
  108.    _TC["LINKS ENDE / RECHTS START",60,100,2,0]
  109.    '
  110.    Do 
  111.       If Joy(1)=8
  112.          Flash Off : Fade 1
  113.          _MUSICOFF
  114.          Cls 0 : Exit 
  115.       End If 
  116.       '
  117.       If Joy(1)=4
  118.          If XHIGHOK
  119.             On Error Proc _FEHLER
  120.             Resume Label _END
  121.             Open Out 1,".bierschenhigh"
  122.                For I=0 To 9
  123.                   Print #1,XHIGH$(I)
  124.                   Print #1,XHIGH(I)
  125.                Next I
  126.             Close 1
  127.          End If 
  128.          _END: Flash Off : Fade 1
  129.          _MUSICOFF
  130.          Request On 
  131.          Wait 100
  132.          End 
  133.       End If 
  134.    Loop 
  135. End Proc
  136. Procedure _FEHLER
  137.    Resume Label 
  138. End Proc
  139. Procedure _GAME
  140.    '
  141.    Screen Open 3,320,8,2,Lowres
  142.    Flash Off 
  143.    Curs Off 
  144.    Colour 1,$0
  145.    Cls 0
  146.    '
  147.    _SCREEN
  148.    '
  149. _GOONULF:
  150.    '* Landscape 
  151.    '* --------------------------------------------------
  152.    Unpack 15 To 1
  153.    For I=0 To 7 : Colour I,$0 : Next I
  154.    '
  155.    Inc XLEVEL
  156.    XTREFFER=0 : XLASERANZ=0 : XLOST=0 : XTREFFERMAX=60
  157.    '
  158.    If XSHIPS>9 Then A$="" Else A$="0"
  159.    If XLEVEL>9 Then B$="" Else B$="0"
  160.    C$=" 0000000"
  161.    Mid$(C$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
  162.    _TX["SHIPS:"+A$+Str$(XSHIPS)-" "+"     LEVEL:"+B$+Str$(XLEVEL)-" "+"     POINTS:"+C$-" ",0,0,3]
  163.    Screen 1 : Fade 1,,$117,$4,$BDF,$9BF,$78F,$55F,$238 : Wait 15
  164.    Screen 3 : Fade 1,,$4F : Wait 15
  165.    '
  166.    Screen 2
  167.    Randomize Timer
  168.    For I=0 To 20
  169.       Plot Rnd(330),Rnd(155)+10,15
  170.    Next I
  171.    Fade 1,,,,,,,,,,,,,,,,$EEE
  172.    _TX["ALERT",156,82,2]
  173.    Flash 1,"(000,8)(100,1)(300,1)(500,1)(700,1)(900,1)(B00,1)(D00,1)(F00,8)(D00,1)(B00,1)(900,1)(700,1)(500,1)(300,1)(100,1)"
  174.    While Joy(1)<16 : Wend 
  175.    Flash Off 
  176.    Fade 1,,$0
  177.    Wait 15
  178.    Ink 0 : Bar 157,82 To 195,89
  179.    Double Buffer 
  180.    '
  181.    '* Held & Aliens installieren  
  182.    '* --------------------------------------------------
  183.    On XLEVEL Proc _LEVEL01,_LEVEL02,_LEVEL03,_LEVEL04,_LEVEL05,_LEVEL06
  184.    Bob 1,10,100,1
  185.    Amal 1,HA$
  186.    Amreg(0)=0
  187.    Fade 1 To 0 : Wait 15
  188.    Amal On 
  189.    Make Mask 
  190.    Timer=0
  191.    LVOFORBID=Execall(-132)
  192.    '
  193.    Do 
  194.       '
  195.    '* Wurde Held getroffen
  196.    '* --------------------------------------------------- 
  197.       If Bob Col(1,3 To 15)
  198.          Amal Off 1
  199.          Amal 1,"A 1,(9,3)(10,3)(11,3)(12,3)(13,3)(14,3)(15,3)(16,3)(17,3)(18,3)"
  200.          Amal On 1
  201.          If Length(5) : Sam Play 9,2,9000 : End If 
  202.          Wait 30
  203.          Dec XSHIPS : Inc XLOST
  204.          If XSHIPS=-1 : Bob 1,0,-200,1 : Exit : End If 
  205.          If XSHIPS<10 : A$="0" Else A$="" : End If 
  206.          _TX[A$+Str$(XSHIPS)-" ",48,0,3]
  207.          Amal 1,HA$
  208.          Amal On 1
  209.       End If 
  210.       '
  211.       '
  212.    '* Feuertaste drÜcken und Laser abschießen 
  213.    '* ---------------------------------------------------   
  214.       If Amreg(0)<>0
  215.          Amreg(0)=0
  216.          If Chanmv(2)=0
  217.             X=X Bob(1) : Y=Y Bob(1)
  218.             Bob 2,X+34,Y+8,19
  219.             Amal 2,"M"+Str$(320-X)+",0,"+Str$((320-X)/12)+";LY=-200"
  220.             Amal On 2
  221.             If Length(5) : Sam Play 2,1 : End If 
  222.             Inc XLASERANZ
  223.          End If 
  224.       End If 
  225.       '  
  226.       '
  227.    '* Testen ob Treffer und Explosion 
  228.    '* --------------------------------------------------- 
  229.       If Chanmv(2)
  230.          If Bob Col(2)
  231.             For I=4 To 4+XALIENANZ
  232.                If Bob Col(I,1 To 2)<>0 and Amreg(I-3)=0
  233.                   Bob Off 2
  234.                   Amal Off I
  235.                   Amal I,XEXPLOSION$(I-3)+XALIEN$(I-3)
  236.                   Amal On I
  237.                   If Length(5)
  238.                      If XLEVEL<6
  239.                         Sam Play 4,2,8000+Rnd(3000)
  240.                      Else 
  241.                         Sam Play 4,3,21000
  242.                      End If 
  243.                   End If 
  244.                   Add XPOINTS,100
  245.                   C$=" 0000000"
  246.                   Mid$(C$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
  247.                   _TX[C$-" ",264,0,3]
  248.                   Inc XTREFFER
  249.                End If 
  250.             Next I
  251.          End If 
  252.       End If 
  253.       '
  254.       '
  255.       If XTREFFER=>XTREFFERMAX Then Exit 
  256.       '
  257.    Loop 
  258.    '
  259.    LVOPERMIT=Execall(-138)
  260.    _STATISTIC
  261.    '
  262.    If XSHIPS>-1 and XLEVEL<6
  263.       Goto _GOONULF
  264.    Else 
  265.       Wait 80
  266.    End If 
  267.    '
  268. End Proc
  269. Procedure _STATISTIC
  270.    T=Timer
  271.    '
  272.    '* Alles aus 
  273.    '* --------- 
  274.    Wait 30
  275.    For I=4 To 15
  276.       Amal Off I
  277.    Next I
  278.    Wait 10
  279.    '
  280.    If XSHIPS>-1 and XLEVEL<6
  281.       For I=4 To 3+XALIENANZ
  282.          Amal I,XEXPLOSION$(I-3)
  283.          Amal On I
  284.          If Length(5) : Sam Play 4,2,8000+Rnd(3000) : Wait 10 : End If 
  285.       Next I
  286.       Wait 50
  287.       Amal Off 1
  288.       Amal 1,"A0,(1,3)(2,3)(3,3)(4,3)(5,3)(6,3)(7,3);Loop:M"+Str$(370-X Bob(1))+",0,100"
  289.       Amal On 1
  290.       Wait 130
  291.    End If 
  292.    If XSHIPS>-1 and XLEVEL=6
  293.       Amal 4,"A1,(25,1)"
  294.       X=X Bob(4) : Y=Y Bob(4) : I=0
  295.       Repeat 
  296.          N=Rnd(5)+5
  297.          If Chanan(N)<>-1
  298.             Bob N,X-8+Rnd(26),Y-8+Rnd(26),9
  299.             Amal N,"A1,(9,3)(10,3)(11,3)(12,3)(13,3)(14,3)(15,3)(16,3)(17,3)(18,3);FR0=0T14;P;NR0;LX=352"
  300.             Amal On N
  301.             If Length(5) : Sam Play 4,2,9000+Rnd(2000) : Wait 10 : End If 
  302.             Inc I
  303.          End If 
  304.       Until I=30
  305.       Wait 60
  306.    End If 
  307.    '
  308.    Screen 2 : Fade 1 : Wait 15 : Bob Off 
  309.    Screen 1 : Fade 1 : Wait 15
  310.    Screen 3 : Fade 1 : Wait 15
  311.    Amal Off 
  312.    '
  313.    If Length(3) Then Music 1
  314.    '
  315.    If XSHIPS>-1 and XLEVEL=6 Then _ALLDONE
  316.    '
  317.    '* Statistiken 
  318.    '* ----------- 
  319.    _SCREEN
  320.    If XSHIPS=-1
  321.       _TX["GAME OVER",140,95,2]
  322.       Fade 1,,$F00 : Wait 15
  323.       _WAIT
  324.    End If 
  325.    A#=Max(1,XLASERANZ) : A#=((100.0/A#)*XTREFFER)
  326.    B#=XLOST : B#=(100.0/(B#+1))
  327.    A#=(A#+B#)/2
  328.    If XTREFFER=0 Then A#=0.0
  329.    XTTALENT#=XTTALENT#+A#
  330.    Add XTSHOOTS,XLASERANZ
  331.    Add XTHITS,XTREFFER
  332.    Add XTLOST,XLOST
  333.    Add XTTIME,T
  334.    '
  335.    If XSHIPS>-1
  336.       _TC["LEVEL STATISTIC",118,50,2,1]
  337.       _TC["LEVEL.........."+Str$(XLEVEL)-" ",114,70,2,1]
  338.       A$=" ....." : Mid$(A$,7-Len(Str$(XLASERANZ)-" "))=Str$(XLASERANZ)-" "
  339.       _TC["SHOOTS....."+A$-" ",114,80,2,1]
  340.       A$=" ....." : Mid$(A$,7-Len(Str$(XTREFFER)-" "))=Str$(XTREFFER)-" "
  341.       _TC["HITS......."+A$-" ",114,90,2,1]
  342.       If XLOST<10 : A$="." Else A$="" : End If 
  343.       _TC["LOST.........."+A$+Str$(XLOST)-" ",114,100,2,1]
  344.       N=T/50 : H=N/3600 : M=N/60-H*60 : S=N-(H*3600+M*60)
  345.       M$=" 00" : Right$(M$,Len(Str$(M))-1)=Str$(M)-" "
  346.       S$=" 00" : Right$(S$,Len(Str$(S))-1)=Str$(S)-" "
  347.       _TC["TIME......."+M$-" "+":"+S$-" ",114,110,2,1]
  348.       A$=""
  349.       If A#<100 : A$="." : End If 
  350.       If A#<10 : A$=".." : End If 
  351.       _TC["TALENT..."+A$+Str$(A#)-" "+"%",114,120,2,1]
  352.       If A#>39.99 : Inc XSHIPS : End If 
  353.       XPOINTS=XPOINTS+A#*100
  354.       A$=" ......." : Mid$(A$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
  355.       _TC["POINTS..."+A$-" ",114,130,2,0]
  356.       _WAIT
  357.       If XLEVEL<6 : _MUSICOFF : End If 
  358.    End If 
  359.    '
  360.    If XLEVEL=6 or XSHIPS=-1
  361.       '
  362.       _TC["TOTAL STATISTIC",118,50,2,1]
  363.       _TC["LEVEL.........."+Str$(XLEVEL)-" ",114,70,2,1]
  364.       A$=" ....." : Mid$(A$,7-Len(Str$(XTSHOOTS)-" "))=Str$(XTSHOOTS)-" "
  365.       _TC["SHOOTS....."+A$-" ",114,80,2,1]
  366.       A$=" ....." : Mid$(A$,7-Len(Str$(XTHITS)-" "))=Str$(XTHITS)-" "
  367.       _TC["HITS......."+A$-" ",114,90,2,1]
  368.       If XTLOST<10 : A$="." Else A$="" : End If 
  369.       _TC["LOST.........."+A$+Str$(XTLOST)-" ",114,100,2,1]
  370.       N=XTTIME/50 : H=N/3600 : M=N/60-H*60 : S=N-(H*3600+M*60)
  371.       M$=" 00" : Right$(M$,Len(Str$(M))-1)=Str$(M)-" "
  372.       S$=" 00" : Right$(S$,Len(Str$(S))-1)=Str$(S)-" "
  373.       _TC["TIME......."+M$-" "+":"+S$-" ",114,110,2,1]
  374.       A#=XTTALENT#/6
  375.       A$=""
  376.       If A#<100 : A$="." : End If 
  377.       If A#<10 : A$=".." : End If 
  378.       _TC["TALENT..."+A$+Str$(A#)-" "+"%",114,120,2,1]
  379.       XPOINTS=XPOINTS+A#*100
  380.       A$=" ......." : Mid$(A$,9-Len(Str$(XPOINTS)-" "))=Str$(XPOINTS)-" "
  381.       _TC["POINTS..."+A$-" ",114,130,2,0]
  382.       _WAIT
  383.       '
  384.       _HIGHSCORE
  385.       '
  386.    End If 
  387.    '
  388. End Proc
  389. Procedure _MUSICOFF
  390.    If Length(3)
  391.       For I=63 To 0 Step -1
  392.          Mvolume I : Wait Vbl 
  393.       Next I
  394.       Music Off 
  395.       Mvolume 63
  396.    End If 
  397. End Proc
  398. Procedure _WAIT
  399.    While Joy(1)>15 : Wend 
  400.    While Joy(1)<16 : Wend 
  401.    Flash Off 
  402.    Fade 1
  403.    Wait 15
  404.    Cls 0
  405. End Proc
  406. Procedure _HIGHSCORE
  407.    If XPOINTS>XHIGH(9)
  408.       _TC["DAS WAR EIN HARTES STUECK ARBEIT ALTER!",20,10,2,1]
  409.       _TC["ZUR BELOHNUNG GIBT ES ZWAR KEIN BIER",20,20,2,1]
  410.       _TC["ABER IMMERHIN KANNST DU DICH IN DER",20,30,2,1]
  411.       _TC["EWIGEN BESTENLISTE EINTRAGEN!",20,40,2,1]
  412.       _TX["#",20,60,2]
  413.       '
  414.       Repeat 
  415.          N=0
  416.          While N=0 : N=Asc(Upper$(Inkey$)) : Wend 
  417.          If N>31 and N<>35 and Len(N$)<16
  418.             N$=N$+Chr$(N)
  419.          End If 
  420.          If N=8 and Len(N$)>0
  421.             N$=Left$(N$,Len(N$)-1)
  422.          End If 
  423.          _TX[N$+"# ",20,60,2]
  424.          Clear Key 
  425.       Until N=13
  426.       '
  427.       XHIGH(9)=XPOINTS
  428.       XHIGH$(9)=N$
  429.       XHIGHOK=True
  430.       '
  431.       For I=0 To 8
  432.          For I2=I+1 To 9
  433.             If XHIGH(I2)>XHIGH(I)
  434.                Swap XHIGH(I2),XHIGH(I)
  435.                Swap XHIGH$(I2),XHIGH$(I)
  436.             End If 
  437.          Next I2
  438.       Next I
  439.       '
  440.       Flash Off : Fade 1 : Wait 15 : Cls 0
  441.    End If 
  442.    '
  443.    _TC["HIGHSCORE",140,50,2,1]
  444.    For I=1 To 10
  445.       If I<10 Then A$="0" Else A$=""
  446.       B$=A$+Str$(I)-" "+". "+XHIGH$(I-1)+String$(".",16-Len(XHIGH$(I-1)))+" "+String$("0",7-Len(Str$(XHIGH(I-1))-" "))+Str$(XHIGH(I-1))-" "
  447.       If I=10 : C=0 Else C=1 : End If 
  448.       _TC[B$,64,I*10+65,2,C]
  449.    Next I
  450.    _WAIT
  451. End Proc
  452. Procedure _ALLDONE
  453.    Screen Open 2,320,256,4,Lowres : Cls 0
  454.    '
  455.    _TC["NA ALSO!",0,60,2,1]
  456.    _TC["DEN ALIENS IST DER DURST",0,70,2,1]
  457.    _TC["AUF BIER NUN ENDLICH VERGANGEN.",0,80,2,1]
  458.    _TC["UND EINES IST IHNEN EINE LEHRE...",0,100,2,1]
  459.    _TC["...WENN ES UM SUEFFIGEN MEET GEHT",0,120,2,1]
  460.    _TC["DANN HOERT BEI DIR DER SPASS AUF.",0,130,2,1]
  461.    _TC["ACH JA...HERZLICHEN GLUECKWUNSCH!",0,160,2,0]
  462.    _WAIT
  463. End Proc
  464. Procedure _SCREEN
  465.    Screen Open 2,352,178,16,Lowres
  466.    Screen Hide 
  467.    Flash Off 
  468.    Curs Off 
  469.    For I=0 To 15 : Colour I,$0 : Next I
  470.    Cls 0
  471.    Screen Display 2,,58,,
  472.    Screen Show 
  473. End Proc
  474. Procedure _TX[N$,X,Y,S]
  475.    A$="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*:=!$%&/()?<>.,_©# "
  476.    L=Len(N$)-1
  477.    '
  478.    For I=0 To L
  479.       B$=Mid$(N$,I+1,1)
  480.       N=Instr(A$,B$)
  481.       If N>0
  482.          If N<40 : A=240 Else A=248 : Add N,-39 : End If 
  483.          Screen Copy 0,(N-1)*8-1,A,N*8-1,A+8 To S,X+I*8,Y
  484.       End If 
  485.    Next I
  486. End Proc
  487. Procedure _TC[N$,X,Y,S,C]
  488.    Colour 1,$F0 : Flash 2,"(0F0,15)(000,15)"
  489.    '
  490.    A$="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*:=!$%&/()?<>.,_©# "
  491.    L=Len(N$)-1
  492.    '
  493.    For I=0 To L
  494.       B$=Mid$(N$,I+1,1)
  495.       N=Instr(A$,B$)
  496.       If N>0
  497.          If N<40 : A=240 Else A=248 : Add N,-39 : End If 
  498.          Screen Copy 0,129,249,135,256 To S,X+(I+1)*8+2,Y
  499.          Screen Copy 0,(N-1)*8-1,A,N*8-1,A+8 To S,X+I*8,Y
  500.          If Joy(1)<16 : Wait 4 : End If 
  501.       End If 
  502.    Next I
  503.    If C Then Screen S : Ink 0 : Bar X+8+L*8,Y To X+L*8+18,Y+8
  504. End Proc
  505. Procedure _GETHERO
  506.    '* Heldanimationen 
  507.    '* --------------- 
  508.    For I=0 To 17
  509.       Get Bob 0,1+I,1+I*17,1 To I*17+17,17
  510.    Next I
  511.    '
  512.    '* Laserschuß & Miene
  513.    '* ------------------
  514.    Get Bob 0,19,307,0 To 320,1 : Hot Spot 19,$21
  515.    '
  516.    '* Kanäle fÜr animationen festlegen
  517.    '* --------------------------------
  518.    Channel 0 To Screen Offset 1
  519.    For I=1 To 15
  520.       Channel I To Bob I
  521.    Next I
  522.    '
  523.    '* Steuerung des Helden
  524.    '* --------------------
  525.    HA$=HA$+"JS;B:LR0=J1;IX<10JV;IX>310JQ;IY>160JN;IY<5JK;"
  526.    HA$=HA$+"C:IR0&16JF;M:IR0&1JU;IR0&2JD;IR0&4JL;IR0&8JR;JB;"
  527.    HA$=HA$+"U:A0,(2,1);M0,-4,1;JS;D:A0,(8,1);M0,4,1;JS;R:M4,0,1;JB;"
  528.    HA$=HA$+"L:M-4,0,1;JB;S:A1,(1,10);JB;F:LRA=1;JM;V:LX=10;JC;"
  529.    HA$=HA$+"Q:LX=310;JC;N:LY=160;JC;K:LY=5;JC;"
  530.    '
  531.    '**** Registerwertigkeiten ****
  532.    'Amreg(0)=Feuertaste->RA 
  533. End Proc
  534. Procedure _LEVEL01
  535.    XALIENANZ=5
  536.    '
  537.    For I=0 To 9
  538.       Get Bob 0,21+I,1+I*17,18 To I*17+17,34
  539.    Next I
  540.    '
  541.    For I=1 To XALIENANZ
  542.       Read N
  543.       XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(25,3)(26,3)(27,3)(28,3)(29,3)(30,3);FR1=0T8;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
  544.       XALIEN$(I)="A 0,(21,3)(22,3)(23,3)(24,3);Loop: M -372,0,"+Str$(N)+";L X=352;L Y=Z(95)+Z(65);J Loop"
  545.       Bob 3+I,352,Rnd(160),21
  546.       Amal 3+I,XALIEN$(I)
  547.    Next I
  548.    '
  549.    Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
  550.    '
  551.    Data 70,90,110,120,130
  552. End Proc
  553. Procedure _LEVEL02
  554.    XALIENANZ=6
  555.    '
  556.    For I=0 To 13
  557.       Get Bob 0,21+I,1+I*15,35 To I*15+15,49
  558.    Next I
  559.    '
  560.    For I=1 To XALIENANZ
  561.       Read N : X=-Rnd(150)-70
  562.       XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(30,6)(31,3)(32,3)(33,3)(34,3);FR1=0T8;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
  563.       XALIEN$(I)="A 0,(21,3)(22,3)(23,3)(24,3)(25,3)(26,10)(27,3)(28,3)(29,3);"
  564.       XALIEN$(I)=XALIEN$(I)+"Loop:M"+Str$(X)+",0,"+Str$(N)+";FR0=0T20;P;NR0;"
  565.       XALIEN$(I)=XALIEN$(I)+"M"+Str$(-352+Abs(X))+",0,"+Str$(N/2)
  566.       XALIEN$(I)=XALIEN$(I)+";LX=352;LY=Z(85)+Z(65)+Z(10);JLoop"
  567.       Bob 3+I,352,Rnd(160),21
  568.       Amal 3+I,XALIEN$(I)
  569.    Next I
  570.    '
  571.    Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
  572.    '
  573.    Data 40,50,60,70,80,90
  574. End Proc
  575. Procedure _LEVEL03
  576.    XALIENANZ=7
  577.    '
  578.    For I=0 To 13
  579.       Get Bob 0,21+I,1+I*17,67 To I*17+17,83
  580.    Next I
  581.    '
  582.    Randomize Timer
  583.    For I=1 To XALIENANZ
  584.       Read N
  585.       XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(29,3)(30,3)(31,3)(32,3)(33,3)(34,3);FR1=0T8;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
  586.       XALIEN$(I)="A 0,(21,4)(22,4)(23,4)(24,4)(25,4)(26,4)(27,4)(28,4);Loop: "
  587.       I3=Rnd(1)
  588.       For I2=1 To 2
  589.          Add I3,1,0 To 1
  590.          If I3=1 Then A$=Str$(-Rnd(10)-20) Else A$=Str$(Rnd(10)+20)
  591.          XALIEN$(I)=XALIEN$(I)+"M-185,"+A$+","+Str$(N)+";"
  592.       Next I2
  593.       XALIEN$(I)=XALIEN$(I)+"L X=352;L Y=Z(55)+Z(35)+Z(10)+30;J Loop"
  594.       Bob 3+I,352,Rnd(100)+30,21
  595.       Amal 3+I,XALIEN$(I)
  596.    Next I
  597.    '
  598.    Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
  599.    '
  600.    Data 34,40,50,60,70,75,90,40
  601. End Proc
  602. Procedure _LEVEL04
  603.    XALIENANZ=8
  604.    '
  605.    For I=0 To 9
  606.       Get Bob 0,21+I,1+I*17,84 To I*17+17,100
  607.    Next I
  608.    '
  609.    For I=1 To XALIENANZ
  610.       Read N
  611.       XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(25,2)(26,2)(27,2)(28,2)(29,2)(30,2);FR1=0T7;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
  612.       XALIEN$(I)="A 0,(21,4)(22,4)(23,4)(24,4);Loop: "
  613.       XALIEN$(I)=XALIEN$(I)+"FR1=0T1;M-102,34,"+Str$(N)+";"
  614.       XALIEN$(I)=XALIEN$(I)+"M0,-34,10;"
  615.       XALIEN$(I)=XALIEN$(I)+"M-102,0,"+Str$(N)+";NR1"
  616.       XALIEN$(I)=XALIEN$(I)+"L X=352;L Y=Z(53)+Z(40)+Z(23)+10;J Loop"
  617.       Bob 3+I,352,Rnd(100)+30,21
  618.       Amal 3+I,XALIEN$(I)
  619.    Next I
  620.    '
  621.    Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
  622.    '
  623.    Data 24,28,39,30,35,20,40,22
  624. End Proc
  625. Procedure _LEVEL05
  626.    XALIENANZ=9
  627.    '
  628.    For I=0 To 13
  629.       Get Bob 0,21+I,1+I*17,50 To I*17+17,66
  630.    Next I
  631.    '
  632.    For I=1 To XALIENANZ
  633.       Read N : X=-Rnd(150)-70
  634.       XEXPLOSION$(I)="LR"+Chr$(65+I)+"=1;A 1,(25,8)(26,2)(27,2)(28,2)(29,2)(30,2)(31,2)(32,2)(33,2)(34,2);FR1=0T13;P;NR1;L X=352;L Y=Z(95)+Z(65);LR"+Chr$(65+I)+"=0;"
  635.       XALIEN$(I)="A 0,(21,3)(22,3)(23,3)(24,3);"
  636.       XALIEN$(I)=XALIEN$(I)+"Loop:M"+Str$(X)+",0,"+Str$(N)+";FR0=0T20;P;NR0;"
  637.       XALIEN$(I)=XALIEN$(I)+"M"+Str$(-400+Abs(X))+",0,"+Str$(N/2)
  638.       XALIEN$(I)=XALIEN$(I)+";LY=Z(85)+Z(65)+Z(10);M"+Str$(Abs(X)+130)+",0,"+Str$(N)
  639.       XALIEN$(I)=XALIEN$(I)+";M"+Str$(X-130)-" "+",0,"+Str$(N)
  640.       XALIEN$(I)=XALIEN$(I)+";LX=352;LY=Z(85)+Z(65)+Z(10);JLoop"
  641.       Bob 3+I,352,Rnd(160),21
  642.       Amal 3+I,XALIEN$(I)
  643.    Next I
  644.    '
  645.    Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
  646.    '
  647.    Data 40,50,60,70,80,90,95,100,75
  648. End Proc
  649. Procedure _LEVEL06
  650.    XALIENANZ=0
  651.    '
  652.    For I=0 To 5
  653.       Get Bob 0,21+I,1+I*26,101 To I*26+26,129
  654.    Next I
  655.    '
  656.    XEXPLOSION$(1)="LRB=1;A1,(26,1);P;P;P;P;P;P;A1,(25,1);LRB=0;FR0=0T30;LX=X+10;IX>290JS;NR0;"
  657.    XALIEN$(1)="S:LX=300;A0,(21,9)(22,3)(23,3)(24,3)(25,9)(24,3)(23,3)(22,3);"
  658.    XALIEN$(1)=XALIEN$(1)+"LRC=Z(1);IRC=1JD;U:FR0=0T50;LY=Y+3;IY>150JD;LRC=Z(1000);IRC=1000JA;NR0;"
  659.    XALIEN$(1)=XALIEN$(1)+"D:FR0=0T50;LY=Y-3;IY<0JU;LRC=Z(1000);IRC=1000JB;NR0;JU"
  660.    XALIEN$(1)=XALIEN$(1)+"A:M-300,0,15;M300,0,15;JG"
  661.    XALIEN$(1)=XALIEN$(1)+"B:M-300,0,15;M300,0,15;G:LRC=Z(1);IRC=0JUJD;"
  662.    Bob 4,300,100,21
  663.    Amal 4,XALIEN$(1)
  664.    '
  665.    Amal 0,"Loop:FR0=0T352;LX=R0;NR0;JLoop;"
  666.    '
  667. End Proc
  668.